package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.system.domain.Column;
import java.util.List;

public interface ColumnService {
    // 查询栏目列表（树形结构）
    List<Column> selectColumnList(Column column);

    List<TreeSelect> selectColumnTreeList(Column column);

    List<Column> buildColumnTree(List<Column> columns);
    List<TreeSelect> buildColumnTreeSelect(List<Column> columns);

    // 校验栏目名称唯一性
    boolean checkColumnNameUnique(Column column);  // 修正返回类型为String

    // 新增栏目
    int insertColumn(Column column);

    // 更新栏目
    int updateColumn(Column column);

    // 逻辑删除栏目
    int deleteColumnById(Long columnId);

    // 根据ID查询栏目
    Column selectColumnById(Long columnId);

    // 隐藏子栏目（级联）
    void hideChildColumns(Long parentId);

    // 显示子栏目（级联）
    void showChildColumns(Long parentId);

    // 根据父ID查询子栏目列表
    List<Column> selectChildColumnsByParentId(Long parentId);

    int deleteColumnCascade(Long columnId);

    boolean hasUnHiddenChildren(Long columnId);
}
